Predicting a Future Price Range for a Desired Volume

ABSTRACT

The present invention provides methods and apparatus, including computer program products, to predict a future price range for a desired volume of a traded item. This includes determining a price range based on a set of historical transactions having a comparison volume corresponding to the desired volume of the traded item. It may also include selecting transactions from historical transaction data to generate the set of historical transactions. It may also include selecting historical transactions such that the set of historical transactions has a total volume substantially equal to the comparison volume. It may also include selecting historical transactions such that the set of historical transactions has a total volume greater than the comparison volume and selectively removing one or more historical transactions from the set of historical transactions until the set of historical transactions has a total volume substantially equal to the comparison volume.

CLAIM OF PRIORITY

This application is a continuation and claims priority under 35 U.S.C. §120 to U.S. patent application Ser. No. 10/462,546, filed Jun. 16, 2003, the entire contents of which is hereby incorporated by reference.

TECHNICAL FIELD

This description relates to predicting a future price range for a desired volume.

BACKGROUND

Historical data about transactions occurring in a market for traded items of value (referred to sometimes simply as traded items), such as stocks, bonds, and derivatives, are typically published by the market or by another, unrelated entity. Such historical data can include for each transaction, for example, the time of the transaction, the price per traded item for that transaction, and the number of the traded items bought and sold in that transaction (i.e., the volume of the transaction). In some markets, the volume of the transaction can affect the price of the transaction. For example, an offer by a seller to sell (or a buyer to buy) a large volume of a particular traded item can put downward (or upward) pressure on the price for that traded item.

SUMMARY

The present invention provides methods and apparatus, including computer program products, to predict a future price range for a desired volume of a traded item. In general, in one aspect, there is a method to predict a future price range for a desired volume of a traded item.

The method includes determining a price range based on a set of historical transactions having a comparison volume corresponding to the desired volume of the traded item. Other embodiments can include one or more of the following features. Selecting transactions from historical transaction data to generate the set of historical transactions. Selecting historical transactions such that the set of historical transactions has a total volume substantially equal to the comparison volume. Selecting historical transactions such that the set of historical transactions has a total volume greater than the comparison volume and selectively removing one or more historical transactions from the set of historical transactions until the set of historical transactions has a total volume substantially equal to the comparison volume. This can also include selectively removing a historical transaction that has a highest price from the set of historical transactions and/or selectively removing a historical transaction that has a lowest price from the set of historical transactions.

The method can also include selecting a first historical transaction from the historical transaction data and repeatedly selecting other historical transactions preceding the previously selected transaction until the set of transactions has a total volume substantially equal to the comparison volume. The first historical transaction can correspond to a transaction from the historical transaction data that happened most recently. Selecting can further include repeatedly selecting another transaction immediately preceding the previously selected transaction.

In some examples, the set of historical transactions is a first set of historical transactions. In these examples the method includes selecting an additional number of sets of historical transactions from the historical transaction data and determining a price range based on the first and the additional number of sets of historical transactions. Each set of historical transactions can have a total volume substantially equal to comparison volume. The method can also include enabling a user to define the additional number of sets of transactions. The method can also include ordering the historical transaction data. The ordering can be based on price. The historical transaction data can include timing data.

The method can also include determining an execution time for the set of historical transactions. This can be determined based on a chronologically first transaction and a chronologically last transaction. This can also be determined after selectively removing one or more historical transactions. The method can also include averaging the execution time for the set of historical transactions with another execution time corresponding to another set of transactions. The method can also include displaying the execution time and/or the average time. The historical transaction data can include published transactions from a trading market. Selecting can include multiplying a volume of a transaction by a multiplier. The multiplier can be based on a fixed percentage, a random function, an exponential function, and/or a logarithmic function. The method can also include displaying the determined price range. The comparison volume of the set of historical transactions can substantially equal the desired volume of a traded item. The traded item can include a stock or a bond. The comparison volume can be based on a percentage of the average daily volume.

The method can also include determining a price change based on the set of historical transactions. Determining a price change can include determining a first price and a second price, and determining a price change based on the difference between the first price and the second price. The first price can include a price associated with a chronologically first historical transaction in the set of historical transactions. The second price can include a price associated with a chronologically last historical transaction in the set of historical transactions. The second price can include an average price associated with the set of historical transactions. The method can also include determining a price range based on the price change and a current market condition associated with the traded item.

In some examples, the method can also include determining a price range based on a plurality of sets of historical transactions. In these examples, the method can also include determining an associated price change for each set of historical transactions. The method can also include determining a plurality of price changes, where each price change corresponds to a respective set of historical transactions. The method can include selecting a highest price change from the plurality of price changes. The method can include selecting a lowest price change from the plurality of price changes. The method can include determining an average price change associated with the plurality of price changes.

In general, in another aspect, there is a method to predict a future price range for a desired large volume of a traded item. The method includes selecting a set of transactions, from historical transaction data associated with the traded item, based on the large desired volume, determining pricing statistics based on the set of transactions, and determining the future price range based on the pricing statistics. Other embodiments may include one or more of the following features. Determining at least one of a highest price, a lowest price, and an average price for the set of transactions, identifying a base price associated with the set of transactions, and determining a difference between the base price and the highest price, the lowest price, and/or the average price.

The method can also include combining the difference with a current transaction price. The method can also include determining a time between a first and a last transaction in the set of transactions. In other examples, the set of transactions is a first set of transactions and the pricing statistics is a first set of pricing statistics. In these examples, the method can also include selecting a second set of transactions associated with the traded item based on the desired volume and determining a second set of pricing statistics based on the second set of transactions and a price associated with a transaction preceding the second set of transactions. The method can also include determining the future price range based on the first set of pricing statistics and the second set of pricing statistics. The first set of transactions and the second set of transactions can be consecutive. The first set of transactions and the second set of transactions both can occur in a same day. The method can also include transmitting the price range via a network.

In general, in another aspect, there is system to predict a future price range for a desired volume of a traded item that includes a computing device. The computing device is configured to determine a price range based on a set of historical transactions having a comparison volume corresponding to the desired volume of the traded item. The computing device can be further configured to select transactions from historical transaction data to generate the set of historical transactions. The computing device can be further configured to render the price range. The computing device can be further configured to generate a user interface to render the price range to a user. The computing device can be further configured to generate a user interface to enable the user to enter an input representing the traded item and an input representing the desired volume. The system can also include a transceiver configured to transmit the price range to a network device.

In general, in another aspect, there are one or more articles comprising a machine-readable medium storing instructions operable to cause one or more machines to perform the above methods.

Other features and advantages of the invention will be apparent from the description and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a user interface.

FIG. 2 is a block diagram of a process to determine a price range.

DETAILED DESCRIPTION

In the example user interface 100 of FIG. 1, box 105 displays a price range for a desired volume of a traded item of value to a user. Traded items of value can include, for example, securities, other financial instruments, commodities, and other items where, for example, volume affects price. The price range of the volume is a predicted price range within which a volume of a predetermined size of a selected traded item is expected to trade (that is, for which there is predicted to be a high likelihood of fulfilling a buy or sell order) based on recent market conditions. To get the predicted price range, the user enters an identifier for the particular traded item in box 110 and a desired volume in box 115. In the illustrated example, the traded item is a share of stock in XYZ Corp., whose symbol on the associated trading market is XYZC, as illustrated in box 110. The desired volume to be traded is 100,000 shares, as illustrated in box 115.

The price range of the volume displayed in box 105 is a predicted price range within which a volume of 100,000 shares of XYZ Corp. would be expected to trade based on recent market conditions. As described in more detail below, a computer program calculates the price range of the volume for the user inputs in boxes 110 and 115 based on available historical transaction data that corresponds to the desired volume. As illustrated, the National Best Bid and Offer (NBBO) in box 120 has a range of 81.81-81.88. The determined price range of the volume in box 115 is 81.73-81.77. This difference shows a predicted negative offset, based on market conditions, associated with trading a large volume of 100,000 shares of XYZ Corp. as compared with the current quoted price range for smaller volumes. This information is useful for a trader who wants to buy or sell the entered volume of the entered traded item, as it displays a reasonable price range based on the desired volume and market conditions. The computer program determines a comparison volume that corresponds to the desired volume in box 115 and analyzes price changes in one or more sets of historical transaction data, using the comparison volume to define how many transactions are included in each of the one or more sets.

FIG. 2 illustrates process 200, which determines the price range of the volume. Process 200 obtains 210 historical data associated with the selected traded item (e.g., represented by the symbol entered in box 110, FIG. 1). This historical data can be obtained 210, for example, from a database or from a real-time feed provided by the trading market in which the desired traded item is traded. The historical data includes information about transactions that take place in the trading market. To help in clarifying the description of process 200, Table 1 provides an example of the most recent 123 historical transactions for the traded item shares of XYZC. Transactions with the same price are combined simply to limit the length (i.e.,

TABLE 1 Transaction Time of Last Number(s) Transaction Volume in Shares Price  1 11:00:00 1000 81.80  2 10:59:59 1100 81.79  3 10:59:58 1000 81.81  4-10 10:59:57 7000 (1000 each transaction) 81.83 11-15 10:59:56 5500 (1100 each transaction) 81.84 16 10:59:55  900 81.85 17 10:59:54  800 81.86 18-28 10:59:53 12100 (1100 each transaction)  81.84 29-34 10:59:52 6000 (1000 each transaction) 81.82 35-37 10:59:51 3600 (1200 each transaction) 81.79 38 10:59:50 1400 81.78 39 10:59:49 1200 81.81 40 10:59:48 1400 81.80 41-44 10:59:47 5000 (1250 each transaction) 81.79 45-50 10:59:46 6000 (1000 each transaction) 81.78 51-56 10:59:45 6600 (1100 each transaction) 81.77 57 10:59:44 1000 81.76 58 10:59:43 1000 81.75 59-66 10:59:42 8000 (1000 each transaction) 81.77 67-74 10:59:41 8000 (1000 each transaction) 81.80 75-81 10:59:40 7700 (1100 each transaction) 81.82 82-85 10:59:39 5000 (1250 each transaction) 81.83 86-91 10:59:38 6000 (1000 each transaction) 81.85 92 10:59:37  900 81.87 93 10:59:36 1000 81.89 94 10:59:35 1100 81.92 95 10:59:34  900 81.90  96-101 10:59:33 6000 (1000 each transaction) 81.91 102  10:59:32  900 81.86 103-106 10:59:31 4000 (1000 each transaction) 81.88 107-112 10:59:30 6600 (1100 each transaction) 81.90 113-120 10:59:29 8000 (1000 each transaction) 81.88 121  10:59:28  800 81.92 122  10:59:27  900 81.94 123  10:59:26 1000 81.90 number of rows) of the table. Such historical data can include for each transaction, for example as illustrated in Table 1, the time of the transaction, the price per traded item for that transaction and the number of the traded item bought and sold in that transaction (i.e., the volume of the transaction). Process 200 orders 220 the historical data based on how process 200 determines 250 pricing statistics, as described in more detail below. For example, using the transaction data in Table 1, process 200 orders the transactions in reverse chronological order. That is, transaction 1 is the most recent transaction, occurring at time 11:00:00 and the other transactions proceed backwards in time.

Process 200 determines 230 a comparison volume, also based on how process 200 determines 250 pricing statistics. For this example, the comparison volume equals the desired volume (e.g., 100,000 shares, the amount entered in box 115, FIG. 1). Process 200 selects 240 a set of transactions that correspond to the comparison volume. To select 240 the set of transactions, process 200 adds the volume of each transaction in the ordered history until the total volume equals or exceeds the comparison volume. Based on how process 200 determines 250 pricing statistics, process 200 uses a multiplier that represents a percentage of the transaction volume that process 200 wants to use. For this simple example, process 200 uses a fixed multiplier corresponding to a percentage of 100% for each transaction (i.e., a multiplier of 1). Using the example data in Table 1, process 200 selects transactions 1-94 for the set of historical transactions. The total volume of these transactions equals 100,300 shares, just over the desired volume of 100,000 shares. As illustrated in this selected set of transaction, in some cases, the total volume of the set of transactions cannot identically equal the comparison volume. If process 200 selected transactions 1-93, the total volume of these transactions equals 99,200 shares. In this case, because neither the first 93 nor the first 94 consecutive transactions identically equal 100,000 shares, process 200 can use the first 94 transactions because the total volume of the first 94 transactions substantially equal the comparison volume. That is, the total volume of the first 94 transactions come as close to the comparison volume as the transactions allow without taking a partial transaction.

In another example, process 200 uses a partial volume of the 94^(th) transaction by changing the multiplier for that last transaction in the set to 0.7272 (i.e., 72.72%) to make the set of transaction have a total volume identically equal to the comparison volume. In that example, process 200 selects 240 a set of transactions so that the total volume of the set is greater than the comparison volume. This allows process 200 to use a multiplier less than one for the last transaction to make the total volume equal to the comparison volume.

For the selected set of transactions (e.g., the first 94 most recent transactions), process 200 determines 250 pricing statistics. Process 200 can use several different techniques. For example, for a consecutive set of historical transactions, process 200 determines 250 the highest price for the set of transactions, the lowest price in the set of transactions, the median price in the set of transactions and the volume weighted average price (VWAP) of the set of transactions. Using the example of the first 94 transactions in Table 1, the highest price of the set occurs at transaction 94, which has a price of 81.92. The lowest price of the set occurs at transaction 58, which has a price of 81.75. The VWAP of the set of transactions is 81.8126. The mean price of the set of transactions is 81.82.

Process 200 then determines 260 whether an additional set of transactions should be selected. Process 200 uses a predetermined number of additional sets of transactions. This predetermined number can be set, for example, by an administrator, or a user. If process 200 determines 260 that an additional set of transactions should be used (i.e., predetermined number has not been analyzed), process 200 repeats blocks 220, 230, 240, and 250. For example, using the data in Table 1, with the same ordering and the same comparison volume, process 200 selects 240 another set of transactions, starting with transaction 95 and proceeding backwards in time until another set of consecutive transactions has a total volume of approximately 100,000 shares. Process 200 determines 250 the highest price, the lowest price, the median price, and the VWAP of this next set of transactions.

Once process 200 determines 260 that no additional sets of transactions are to be used, process 200 determines 270 the price range of the volume. If process 200 uses more than one set of transactions, process 200 combines like pricing statistics. For example, process 200 combines the determined high price from each set of transactions using known statistical methods (e.g., average, standard deviations, and the like) to determine a single high price for the price range. Process 200 repeats this statistical combination for each of the pricing statistics (e.g., lowest price, mean price, and VWAP) to determine a total price range for the desired volume. Process 200 can also combine the pricing statistics with each other to determine 270 a price range. For example, process 200 can average highest price and lowest price from the VWAP or the mean price to determine a symmetric range around the VWAP or mean price.

In the example above, process 200 determines 270 the price range by using the pricing statistics absolutely. Process 200 can also determine 270 the price range by using the pricing statistics relatively, compared to a base price and/or a current price. If relative, process 200 determines a price change associated with the set of transactions to apply that price change to, for example, a current market price. To determine a price change, process 200 determines a base price to compare with the set of transactions. The base price can be, for example, the first price, chronologically, in the set of transactions, the last price, chronologically, in the set of transactions, or the price of a transaction immediately preceding or following the set of transactions.

To determine 250 the relative pricing statistics, process 200 determines a delta high by subtracting the highest price among the selected set of transactions from the base price. Process 200 determines a delta low by subtracting the lowest price among the selected set of transactions from the base price. Process 200 determines a delta average by subtracting the VWAP price for the selected set of transactions from the base price. For example, referring to the data in Table 1, process 200 selects the first set of transactions as transactions 1-94 and selects the base price to be the price of transaction 95, 81.90. Process 200 determines the delta high to be the highest price of the set minus the base price, or 81.92-81.90, which is +0.02. Process 200 determines the delta low to be the lowest price of the set minus the base price, or 81.75-81.90, which is −0.15. Process 200 similarly determines the delta VWAP and the delta mean prices. These deltas are statistically combined (e.g., averaged) with deltas from any additional sets of transactions, to arrive a single set of pricing statistic deltas. These pricing statistic deltas are the relative pricing statistics that process 200 uses to determine 270 the price range for the desired volume. For example, process 200 selects the most current market price, which, using Table 1, is reflected in transaction 1 with a price of 81.80. Process 200 combines the deltas with the current market price to predict a future price range for the desired volume.

In another example, process 200 starts with a group of historical transactions having a total volume greater than the comparison volume and selectively removes transactions from this group until there is a set of transactions with a total volume approximately equal to the comparison volume. Process 200 can selectively remove transactions based on, for example, highest or lowest prices. Using the data of Table 1, process 200 uses all 123 transactions, which have a total volume of 129,400 shares. To selectively remove transactions, process 200 orders 200 the historical data by price in descending order. Table 2 includes this ordered data. Process

TABLE 2 Transaction Time of Last Number(s) Transaction Volume in Shares Price 122  10:59:27  900 81.94 94 10:59:35 1100 81.92 121  10:59:28  800 81.92  96-101 10:59:33 6000 (1000 each transaction) 81.91 95 10:59:34  900 81.90 107-112 10:59:30 6600 (1100 each transaction) 81.90 123  10:59:26 1000 81.90 93 10:59:36 1000 81.89 103-106 10:59:31 4000 (1000 each transaction) 81.88 113-120 10:59:29 8000 (1000 each transaction) 81.88 92 10:59:37  900 81.87 17 10:59:54  800 81.86 102  10:59:32  900 81.86 16 10:59:55  900 81.85 86-91 10:59:38 6000 (1000 each transaction) 81.85 11-15 10:59:56 5500 (1100 each transaction) 81.84 18-28 10:59:53 12100 (1100 each transaction)  81.84  4-10 10:59:57 7000 (1000 each transaction) 81.83 82-85 10:59:39 5000 (1250 each transaction) 81.83 29-34 10:59:52 6000 (1000 each transaction) 81.82 75-81 10:59:40 7700 (1100 each transaction) 81.82  3 10:59:58 1000 81.81 39 10:59:49 1200 81.81  1 11:00:00 1000 81.80 40 10:59:48 1400 81.80 67-74 10:59:41 8000 (1000 each transaction) 81.80  2 10:59:59 1100 81.79 35-37 10:59:51 3600 (1200 each transaction) 81.79 41-44 10:59:47 5000 (1250 each transaction) 81.79 38 10:59:50 1400 81.78 45-50 10:59:46 6000 (1000 each transaction) 81.78 51-56 10:59:45 6600 (1100 each transaction) 81.77 59-66 10:59:42 8000 (1000 each transaction) 81.77 57 10:59:44 1000 81.76 58 10:59:43 1000 81.75

200 selects 240 a set of transactions by selecting the transactions in order, as ordered in Table 2, until the total volume of the selected transactions approximately equals the comparison volume. In this case, the set of transactions, starting with the highest price of transaction 122 includes all of the rows from transaction 122 to the row containing transactions 35-37. The total volume of this set of transactions is 100,400 shares. The pricing statistics of this set of transactions is different from the example described above using the chronological ordering. The highest price of this set is at transaction 122, which is 81.94. The lowest price of this set is at transaction 37, which is 81.79. The VWAP of this set is 81.8472.

In another example, using the data of Table 1, process 200 selectively removes transactions, by ordering 200 the historical data by price in ascending order. Table 3 includes this ordered data. Process 200 selects 240 a set of transactions by selecting the transactions in order, as ordered in Table 3, until the total volume of the selected transactions approximately equals the comparison volume. In this case, the set of transactions, starting with the lowest price of transaction 58 includes all of the rows from transaction 58 to the row containing transactions 103-106, but only including transaction 103 of that row. The total volume of this set of transactions is 100,100 shares. The pricing statistics of this set of transactions is different also. The highest price of this set is at transaction 103, which is 81.88. The lowest price of this set is at transaction 58, which is 81.75. The VWAP of this set is 81.8118.

Process 200 can determine 270 the price range by using the pricing statistics for the sets associated with Table 2 and Table 3, alone or in combination, and/or absolutely or relatively as described above. Because the data is ordered according to price, from highest or lowest, process 200 can determine 270 the price range in yet another way. For a high price in the price range, process 200 can use the VWAP of the set of transactions ordered in descending order (i.e., the set associated with Table 2). Similarly, for a low price in the price range, process 200 can use the VWAP of the set of transactions ordered in ascending order (i.e., the set associated with Table 3). These two VWAPs can be used absolutely to establish the price range limits, or they can be used relative to a base price, to determine a price change to be applied to a current price.

TABLE 3 Transaction Time of Last Number(s) Transaction Volume in Shares Price 58 10:59:43 1000 81.75 57 10:59:44 1000 81.76 51-56 10:59:45 6600 (1100 each transaction) 81.77 59-66 10:59:42 8000 (1000 each transaction) 81.77 38 10:59:50 1400 81.78 45-50 10:59:46 6000 (1000 each transaction) 81.78  2 10:59:59 1100 81.79 35-37 10:59:51 3600 (1200 each transaction) 81.79 41-44 10:59:47 5000 (1250 each transaction) 81.79  1 11:00:00 1000 81.80 40 10:59:48 1400 81.80 67-74 10:59:41 8000 (1000 each transaction) 81.80  3 10:59:58 1000 81.81 39 10:59:49 1200 81.81 29-34 10:59:52 6000 (1000 each transaction) 81.82 75-81 10:59:40 7700 (1100 each transaction) 81.82  4-10 10:59:57 7000 (1000 each transaction) 81.83 82-85 10:59:39 5000 (1250 each transaction) 81.83 11-15 10:59:56 5500 (1100 each transaction) 81.84 18-28 10:59:53 12100 (1100 each transaction)  81.84 16 10:59:55  900 81.85 86-91 10:59:38 6000 (1000 each transaction) 81.85 17 10:59:54  800 81.86 102  10:59:32  900 81.86 92 10:59:37  900 81.87 103-106 10:59:31 4000 (1000 each transaction) 81.88 113-120 10:59:29 8000 (1000 each transaction) 81.88 93 10:59:36 1000 81.89 95 10:59:34  900 81.90 107-112 10:59:30 6600 (1100 each transaction) 81.90 123  10:59:26 1000 81.90  96-101 10:59:33 6000 (1000 each transaction) 81.91 94 10:59:35 1100 81.92 121  10:59:28  800 81.92 122  10:59:27  900 81.94

In another example, process 200 only uses a portion of the volume of each transaction. In other words, the multiplier is not 1. For example, process 200 can use a multiplier of 0.8 for each transaction (i.e., use 80%). Using the data of Table 1 and a multiplier of 0.8, process 200 uses transactions 1-119. The total volume of these transactions is 125,700 shares, but because process 200 is using 80% of the volume of the transactions for its set, the set of transactions has a total volume of 100,560 shares, approximately equal to the comparison volume of 100,000 shares. The multiplier does not have to be fixed. Process 200 can apply a variable multiplier, so that process 200 applies a different multiplier to each transaction. Process 200 can variably apply a multiplier using a number of different functions. For example, process 200 can apply the variable multiplier randomly. That is, using the data in Table 1, process 200 applies a first randomly generated multiplier, from 0 to 1 exclusively, to the first transaction (i.e., transaction 1). Process 200 applies a second randomly generated multiplier to the second transaction (i.e., transaction 2) and so on, adding the calculated volume (i.e., multiplier*transaction volume), until the total volume equals the comparison volume. Similarly, process 200 can also apply an exponentially increasing or decreasing variable multiplier, a logarithmically variable multiplier, a sinusoidal multiplier, or use some other mathematical function.

In another example, process 200 also determines the time that transpires executing a set of transactions that is equivalent to the desired volume. Referring back to FIG. 1, box 125 displays both an average time for execution and the last execution time. The last execution time refers to the execution time for the most recent set of historical transactions. For example, using the data of Table of 1, transactions 1-94 occur in a period of 25 seconds. That is, because Table 1 is a list of consecutive transactions, the time of the desired volume is simply the difference between the first and last transactions (i.e., 10:59:35 to 11:00:00). The average execution time refers to the average for all of the sets of historical transactions for the desired volume. For example, for the three sets of transactions associated with Tables 1-3, process 200 determines an execution time for each set of transactions and then averages those three determined execution times to determine the average execution time. To determine an execution time for nonconsecutive transactions (e.g., Tables 2 and 3), process 200 determines the first and last transactions, chronologically, and takes the difference in time. For example, using the data of Table 2, process 200 selects the row with transaction 122 to the row with transactions 35-37 for the set of transactions having a comparison volume substantially equal the desired volume. For this set, the first transaction, chronologically, is transaction 123, occurring at 10:59:26. The last transaction, chronologically, is transaction 1, occurring at 11:00:00. Process 200 determines the execution time for this set of transactions is 34 seconds (i.e., 10:59:26 to 11:00:00).

In the examples above, process 200 determines 230 the comparison volume by making the comparison volume equal to the desired volume. Process 200 can also determine 230 the comparison volume in other ways. In other words, the comparison volume can correspond to the desired volume in other ways in addition to being equal. One of the reasons that process 200 is needed is because the desired volume is a large volume for which a single transaction might not exist. The large volume affects the price of the item in the market, so process 200 attempts to estimate that effect based on one or more sets of historical transactions. Process 200 can also determine 230 the comparison volume using a large volume for a particular market. For example, for a stock, a large volume is considered 20% or more of the transacted volume for that stock, in the market. So, process 200 can determine that 20% of the market volume (e.g., from the previous day) is the comparison volume.

In addition or as an alternative to the user interface illustrated in FIG. 1, a computing device determining the price range for the desired volume can transmit the price range via a network to other computing devices. The price range can be published, for example, using a real-time feed, to one or more subscribers.

Other embodiments are within the scope of the following claims. 

1. A method to predict a future price range for a desired volume of a traded item, the method comprising determining a price range based on a set of historical transactions having a comparison volume corresponding to the desired volume of the traded item.
 2. The method of claim 1 further comprising selecting transactions from historical transaction data to generate the set of historical transactions.
 3. The method of claim 2 wherein selecting transactions further comprises selecting historical transactions such that the set of historical transactions has a total volume substantially equal to the comparison volume.
 4. The method of claim 2 wherein selecting further comprises: selecting historical transactions such that the set of historical transactions has a total volume greater than the comparison volume; and selectively removing one or more historical transactions from the set of historical transactions until the set of historical transactions has a total volume substantially equal to the comparison volume.
 5. The method of claim 4 wherein selectively removing further comprises selectively removing a historical transaction that has a highest price from the set of historical transactions.
 6. The method of claim 4 wherein selectively removing further comprises selectively removing a historical transaction that has a lowest price from the set of historical transactions.
 7. The method of claim 4 further comprising determining, after selectively removing one or more historical transactions, an execution time for the set of historical transactions based on a chronologically first transaction and a chronologically last transaction.
 8. The method of claim 7 further comprising averaging the execution time for the set of historical transactions with another execution time corresponding to another set of transactions.
 9. The method of claim 2 wherein selecting further comprises: selecting a first historical transaction from the historical transaction data; and repeatedly selecting other historical transactions preceding the previously selected transaction until the set of transactions has a total volume substantially equal to the comparison volume.
 10. The method of claim 9 wherein the first historical transaction corresponds to a transaction from the historical transaction data that happened most recently.
 11. The method of claim 9 wherein repeatedly selecting further comprises repeatedly selecting another transaction immediately preceding the previously selected transaction.
 12. The method of claim 11 further comprises determining an execution time to execute the set of transactions.
 13. The method of claim 2 wherein the set of historical transactions is a first set of historical transactions, the method further comprising: selecting an additional number of sets of historical transactions from the historical transaction data, and wherein determining further comprises determining a price range based on the first and the additional number of sets of historical transactions.
 14. The method of claim 13 wherein each set of historical transactions has a total volume substantially equal to comparison volume.
 15. The method of claim 13 further comprising enabling a user to define the additional number of sets of transactions.
 16. The method of claim 2 further comprising ordering the historical transaction data.
 17. The method of claim 16 wherein ordering further comprising ordering the historical transaction data based on price.
 18. The method of claim 2 further comprising determining an execution time to execute the set of historical transactions.
 19. The method of claim 18 further comprising displaying the execution time.
 20. The method of claim 18 further comprising averaging the execution time for the set of historical transactions with another execution time corresponding to another set of transactions to determine an average execution time. 